#include "DialogDinamicos.h"
#include <stdexcept>
#include <gtkmm/menuitem.h>


DialogDinamicos::DialogDinamicos(Glib::RefPtr<Gtk::Builder> b, std::string nomMenuItem,
	Configuraciones** params, Gtk::Window& pVentanaPadre)
	: DialogListado("Tipos MIME dinamicos", "Extensión", "Comando", params, pVentanaPadre)
{
	// Se conecta esta ventana de dialogo al menuItem indicado
	Gtk::MenuItem* pMenuItem = 0;
	b->get_widget(nomMenuItem, pMenuItem);

	if (!pMenuItem) throw std::runtime_error("No se encontró " +nomMenuItem);

	pMenuItem->signal_activate().connect( sigc::mem_fun(*this, &DialogDinamicos::abrirDialogo) );
}


DialogDinamicos::~DialogDinamicos(){
}


void DialogDinamicos::setearParametros(){
	// Quita todos los datos de la grilla
	borrarDatos();

	// Carga todo el contenido del mapa en la grilla
	std::map<std::string, std::string>::iterator mi;
	for (mi = (*this->_ppConfig)->mapTiposDinamicos.begin(); mi != (*this->_ppConfig)->mapTiposDinamicos.end(); mi++){
		agregarDatos(mi->first, mi->second);
	}
}


void DialogDinamicos::aceptar(){
	// Guarda los parametros
	obtenerDatosGrilla( (*this->_ppConfig)->mapTiposDinamicos );
}


void DialogDinamicos::cancelar(){
	// nada
}


